package cn.signalpha.modules.base.entity;

import cn.signalpha.core.swagger.ApiModelPropertyEnum;
import cn.signalpha.modules.base.entity.enums.NoticeTypeEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 实体类
 *
 * @author signalpha
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("base_notice_template")
@ApiModel(value = "NoticeTemplate对象", description = "消息通知模板")
public class NoticeTemplate implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private Long id;

    @ApiModelProperty(value = "类型")
	@ApiModelPropertyEnum(NoticeTypeEnum.class)
    private String type;

	@ApiModelProperty(value = "场景说明")
	private String explains;

    @ApiModelProperty(value = "公众号模板消息 -1不存在 0关闭 1开启")
    private Integer isMp;

    @ApiModelProperty(value = "公众号模板消息id")
    private String mpId;

	@ApiModelProperty(value = "公众号模板消息跳转地址")
	private String mpUrl;

    @ApiModelProperty(value = "公众号模板消息内容")
	@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String mpDetail;

    @ApiModelProperty(value = "小程序订阅消息 -1不存在 0关闭 1开启")
    private Integer isMa;

    @ApiModelProperty(value = "小程序订阅消息id")
    private String maId;

	@ApiModelProperty(value = "小程序订阅消息跳转地址")
	private String maUrl;

    @ApiModelProperty(value = "小程序订阅消息内容")
	@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String maDetail;

    @ApiModelProperty(value = "短信消息 -1不存在 0关闭 1开启")
    private Integer isSms;

    @ApiModelProperty(value = "短信消息id")
    private String smsId;

    @ApiModelProperty(value = "短信消息内容")
	@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String smsDetail;

    @ApiModelProperty(value = "站内信消息 -1不存在 0关闭 1开启")
    private Integer isNotice;

    @ApiModelProperty(value = "状态")
    private Integer status;

}
